const { HOST, PORT } = require('../config/constant')
const path = require('path')
const fs = require('fs')

// 定义uploads目录路径
const UPLOADS_DIR = path.join(__dirname, '../uploads')

// 获取所有图片文件的
exports.getImages = (req, res) => {
  // 读取uploads目录
  fs.readdir(UPLOADS_DIR, (err, files) => {
    // console.log(files)
    // 过滤出图片文件（可以根据需要扩展支持的格式）
    const imageExtensions = ['.jpg', '.jpeg', '.png', '.gif', '.webp', '.bmp']
    const imageFiles = files.filter((file) => {
      const ext = path.extname(file).toLowerCase()
      return imageExtensions.includes(ext)
    })

    // 构建完整的URL路径
    const baseUrl = `${HOST}:${PORT}/uploads/`
    const imageUrls = imageFiles.map((file) => ({
      name: file,
      url: baseUrl + file,
    }))

    // 返回JSON响应
    res.json({
      code: '00000',
      data: {
        count: imageUrls.length,
        images: imageUrls,
      },
      msg: '请求成功',
    })
  })
}

// 删除指定图片文件
exports.delImages = (req, res) => {
  const { filename } = req.body
  console.log('~~~~~~~~', filename)

  // 验证请求参数
  if (!filename) {
    return res.status(400).json({
      error: 'Filename is required',
    })
  }

  // 构建文件路径
  const filePath = path.join(UPLOADS_DIR, filename)

  // 检查文件是否存在
  if (!fs.existsSync(filePath)) {
    return res.status(404).json({
      msg: 'File not found',
    })
  }

  // 删除文件
  fs.unlink(filePath, (err) => {
    if (err) {
      console.error('Error deleting file:', err)
      return res.status(500).json({
        msg: 'Failed to delete file',
      })
    }

    res.json({
      code: '00000',
      msg: 'File deleted successfully',
      data: filename,
    })
  })
}
